﻿using System.Collections.Generic;
using System.Threading.Tasks;
using TimServerSDK.Core;
using TimServerSDK.Account.Dtos;

namespace TimServerSDK.Accounts
{
    public interface IAccountTimServerApi
    {
        /// <summary>
        /// 导入单个帐号
        /// https://cloud.tencent.com/document/product/269/1608
        /// </summary>
        /// <param name="userId">用户名</param>
        /// <param name="nick">用户昵称</param>
        /// <param name="faceUrl">用户头像 URL</param>
        /// <returns></returns>
        Task<TimServerResult> ImportAsync(string userId, string nick = null, string faceUrl = null);

        /// <summary>
        /// 导入多个帐号
        /// https://cloud.tencent.com/document/product/269/4919
        /// </summary>
        /// <param name="accounts"></param>
        /// <returns></returns>
        Task<ImportAccountResultDto> MultiImportAsync(string[] accounts);

        /// <summary>
        /// 删除帐号
        /// https://cloud.tencent.com/document/product/269/36443
        /// </summary>
        /// <param name="userIds"></param>
        /// <returns></returns>
        Task<TimServerResultResultItem<List<CheckAccountResultItemDto>>> DeleteAsync(string[] userIds);

        /// <summary>
        /// 查询帐号
        /// https://cloud.tencent.com/document/product/269/38417
        /// </summary>
        /// <param name="userIds"></param>
        /// <returns></returns>
        Task<TimServerResultResultItem<List<CheckAccountResultItemDto>>> CheckAsync(string[] userIds);

        /// <summary>
        /// 失效帐号登录状态
        /// https://cloud.tencent.com/document/product/269/3853
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task<TimServerResult> KickAsync(string userId);

    }
}
